// 导出页面为PDF格式
import html2Canvas from "html2canvas";
import JsPDF from "jspdf";
import {
	Message
} from "element-ui";
import {
	Loading
} from "element-ui";
export default {
	install(Vue, options) {
		Vue.prototype.handlePdf = function(id = "#printArea") {
			const options = {
				lock: true,
				text: "正为您生成PDF...",
				spinner: "el-icon-loading",
				background: "rgba(0, 0, 0, 0.7)",
			};
			const loadingInstance = Loading.service(options);
			// var title = this.htmlTitle
			html2Canvas(document.querySelector(id), {
				// allowTaint: false,
				// 下面这两个配置项就可以解决网络图片截屏失败的问题
				useCORS: true,
				allowTaint: true, // 是否允许跨源图像污染画布
				scale: 2, //图片清晰度，加上转pdf会慢
			}).then(function(canvas) {
				let contentWidth = canvas.width;
				let contentHeight = canvas.height;
				let pageHeight = (contentWidth / 592.28) * 841.89;
				let leftHeight = contentHeight;
				let position = 0;
				let imgWidth = 595.28;
				let imgHeight = (592.28 / contentWidth) * contentHeight;
				let pageData = canvas.toDataURL("image/jpeg", 1.0);
				let PDF = new JsPDF("", "pt", "a4");
				if (leftHeight < pageHeight) {
					PDF.addImage(pageData, "JPEG", 5, 10, imgWidth, imgHeight);
				} else {
					while (leftHeight > 0) {
						PDF.addImage(pageData, "JPEG", 0, position, imgWidth, imgHeight);
						leftHeight -= pageHeight;
						position -= 841.89;
						if (leftHeight > 0) {
							PDF.addPage();
						}
					}
				}
				loadingInstance.close();
				Message.success("下载成功");
				PDF.save("报销单据" + ".pdf");
			});
		};
	},
};